home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Misc / GMS / GMSDev / Source / C / Screens / OBJScreen.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-12-23  |  1.7 KB  |  62 lines

  1. /* Dice: dcc -l0 -mD dpk.o OBJScreen.c -o OBJScreen
  2. **
  3. ** Opens a screen according to the settings in an object file.  See
  4. ** GMS:Source/Asm/Objects/OBJ.Screen.s for object definitions.
  5. */
  6.  
  7. #include <proto/dpkernel.h>
  8. #include <pragmas/objects_pragmas.h>
  9. #include <system/debug.h>
  10.  
  11. BYTE *ProgName      = "Object Demo";
  12. BYTE *ProgAuthor    = "Paul Manias";
  13. BYTE *ProgDate      = "18 October 1997";
  14. BYTE *ProgCopyright = "DreamWorld Productions (c) 1997.  Freely distributable.";
  15. BYTE *ProgShort     = "External object demonstration.";
  16.  
  17. struct Module *OBJModule;
  18. APTR OBJBase;
  19.  
  20. LONG main(void)
  21. {
  22.   struct GScreen *Screen;
  23.   struct Picture *Picture;
  24.   struct JoyData *joydata;
  25.   struct FileName ObjFilename = { ID_FILENAME, "GMS:demos/data/OBJ.Screen" };
  26.   APTR OBJFile;
  27.  
  28.   if (OBJModule = OpenModule(MOD_OBJECTS,NULL)) {
  29.      OBJBase = OBJModule->ModBase;
  30.      if (OBJFile = Load(&ObjFilename,ID_OBJECTFILE)) {
  31.         if (Picture = GetFileObject(OBJFile,"Picture")) {
  32.            if (joydata = Init(Get(ID_JOYDATA),NULL)) {
  33.               if (Init(Picture,NULL)) {
  34.                  if (Screen = Get(ID_SCREEN)) {
  35.                     CopyStructure(Picture,Screen);
  36.                     Screen->MemPtr1 = Picture->Bitmap->Data;
  37.                     Screen->Attrib  = CENTRE;
  38.              
  39.                     if (Init(Screen,NULL)) {
  40.                        Display(Screen);
  41.                        while (!(joydata->Buttons & JD_LMB)) {
  42.                           Query(joydata);
  43.                           WaitAVBL();
  44.                        }
  45.                     }
  46.  
  47.                  Free(Screen);
  48.                  }
  49.               Free(Picture);
  50.               }
  51.            Free(joydata);
  52.            }
  53.         }
  54.      Free(OBJFile);
  55.      }
  56.   Free(OBJModule);
  57.   }
  58.  
  59.   return(ERR_OK);
  60. }
  61.  
  62.